class Solution {
public:
  
    int backPackII(int m, vector<int> &a, vector<int> &v) {
        // write your code here
        vector<int> f(m+1,0);

        for(int i=1;i<=a.size();i++)
        {
            for(int j=m;j>=1;j--)
            {
                 if(a[i-1]<=j)
                 {
                     f[j]=max(f[j],f[j-a[i-1]]+v[i-1]);
                 }
                 
            }
        }
        return f[m];


        
    }
};
